[fix](regression) Wait for stable colocate groups in plan tests#64361
Merged
Conversation
### What problem does this PR solve?
Issue Number: None
Related PR: None
Problem Summary: Colocate join plan assertions could run while the colocate group was still unstable, causing EXPLAIN to omit COLOCATE intermittently. Add a shared regression-suite helper that waits for the target group to become stable and use it before positive colocate plan assertions.
### Release note
None
### Check List (For Author)
- Test: Regression test
- test_colocate_join_of_column_order
- colocate_join_with_rollup
- Behavior changed: No
- Does this need documentation: No
Contributor
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
Contributor
Author
|
/review |
Contributor
Author
|
run buildall |
Contributor
There was a problem hiding this comment.
I found two issues to address before merge.
Critical checkpoint conclusions:
- Goal/test proof: The helper and most call sites address unstable colocate groups, but
test_colocate_join_of_column_orderstill lets the negative plan assertions pass while the group may be unstable. - Scope/focus: The change is small and focused.
- Concurrency/lifecycle/config/compatibility/transaction/persistence/data writes/observability: Not applicable; this PR only changes regression Groovy helpers/tests.
- Parallel paths: Positive
COLOCATEassertions in the touched suites are covered; the first negative column-order path should use the same stable precondition. - Test coverage/results: No
.outfiles changed. I did not run regression tests in this review; I inspected the diff and rangit diff --check. - User focus: No additional user-provided review focus was supplied.
hello-stephen
approved these changes
Jun 10, 2026
github-actions Bot
pushed a commit
that referenced
this pull request
Jun 10, 2026
Problem Summary: Colocate join plan assertions may run before `ColocateTableCheckerAndBalancer` marks the colocate group stable. In that state, Nereids can omit `COLOCATE` from the plan and make otherwise correct regression cases fail intermittently. This PR adds a shared `waitForColocateGroupStable` helper to the regression test framework. It polls `SHOW PROC '/colocation_group'` until the target group's `IsStable` value is true, and fails on timeout. All positive `COLOCATE` plan assertions backed by explicit `colocate_with` groups now wait for stability first. The existing backup/restore-local waiting closure is replaced with the shared helper.
morrySnow
added a commit
to morrySnow/incubator-doris
that referenced
this pull request
Jun 11, 2026
### What problem does this PR solve? Issue Number: None Related PR: apache#64361 Problem Summary: The colocate stability helper incorrectly prefixed global colocate group names with a database name, and the column-order negative plan assertions ran before the colocate group was known to be stable. Preserve bare global group names and wait before all column-order plan assertions. ### Release note None ### Check List (For Author) - Test: Regression test - test_colocate_join_of_column_order - Behavior changed: No - Does this need documentation: No
Contributor
Author
|
The review comments were addressed in follow-up PR #64397 because this PR had already been merged before the fixes were pushed. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What problem does this PR solve?
Issue Number: None
Related PR: None
Problem Summary:
Colocate join plan assertions may run before
ColocateTableCheckerAndBalancermarks the colocate group stable. In that state, Nereids can omitCOLOCATEfrom the plan and make otherwise correct regression cases fail intermittently.This PR adds a shared
waitForColocateGroupStablehelper to the regression test framework. It pollsSHOW PROC '/colocation_group'until the target group'sIsStablevalue is true, and fails on timeout. All positiveCOLOCATEplan assertions backed by explicitcolocate_withgroups now wait for stability first. The existing backup/restore-local waiting closure is replaced with the shared helper.Release note
None
Check List (For Author)
./run-regression-test.sh --clean --run -d correctness_p0 -s test_colocate_join_of_column_order./run-regression-test.sh --run -d query_p0/join -s colocate_join_with_rollup